//
// Created by 张祎鹤严 on 2022/12/12.
//

#ifndef _BSP_IIC_H
#define _BSP_IIC_H

#include "main.h"

#define IIC_SCL_H   HAL_GPIO_WritePin(GPIOA, GPIO_PIN_8, GPIO_PIN_SET) //SCL H
#define IIC_SCL_L   HAL_GPIO_WritePin(GPIOA, GPIO_PIN_8, GPIO_PIN_RESET) //SCL L
#define IIC_SDA_H   HAL_GPIO_WritePin(GPIOA, GPIO_PIN_9, GPIO_PIN_SET) //SDA_H
#define IIC_SDA_L   HAL_GPIO_WritePin(GPIOA, GPIO_PIN_9, GPIO_PIN_RESET)
#define READ_SDA    HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_11)  //输入SDA
#define SDA_READ   GPIOB->IDR & GPIO_IDR_IDR_11

//IIC所有操作函数
void IIC_Start(void);				//发送IIC开始信号
void IIC_Stop(void);	  			//发送IIC停止信号
void IIC_Send_Byte(uint8_t txd);			//IIC发送一个字节
uint8_t IIC_Read_Byte(unsigned char ack);//IIC读取一个字节
uint8_t IIC_Wait_Ack(void); 				//IIC等待ACK信号
void IIC_Ack(void);					//IIC发送ACK信号
void IIC_NAck(void);				//IIC不发送ACK信号
void Delay_us(void);

#endif //_BSP_IIC_H
